The present invention relates generally to multi-processor computer systems and, more particularly, to processing input/output requests in a multi-processor environment.
Modern multi-processor computing systems handle large numbers of input/output requests. These requests can come from a wide variety of sources and may affect data in use by one or more system processors.
Some requesting devices impose ordering requirements upon the requests they generate. Responses to such requests must be returned in the proper order or IO operations will fail. Tracking ordered requests can be resource intensive.
Demand for increased performance further complicates matters. Not only must a multi-processor system observe device ordering requirements, it must deliver high performance. Input/output requests must be processed quickly or backups will occur and performance will suffer.
Input/output requests must be handled efficiently so that processing hardware can scale to meet ever-changing demands. Hardware resources must be carefully utilized to avoid waste. Thus, there is a need in the art for improvements in the way that input/output transactions are handled in multi-processor computer systems.